Cara Membuat data Factory di Laravel

Posted on 15 August 2024


Untuk menambahkan data ke tabel contoh matakuliah menggunakan factory di Laravel, ikuti langkah-langkah berikut:

1. Buat Factory untuk Model MataKuliah

Jika Anda belum memiliki factory untuk model MataKuliah, buatlah dengan perintah artisan:

php artisan make:factory MataKuliahFactory --model=MataKuliah

Ini akan membuat file factory di database/factories/MataKuliahFactory.php.

2. Definisikan Struktur Data di Factory

Edit file MataKuliahFactory.php untuk mendefinisikan bagaimana data yang dihasilkan oleh factory Anda akan terlihat. Contoh:

<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use App\Models\MataKuliah;

class MataKuliahFactory extends Factory
{
    protected $model = MataKuliah::class;

    public function definition()
    {
        return [
            'kode' => $this->faker->word, // Sesuaikan dengan kolom di tabel
            'nama' => $this->faker->sentence, // Sesuaikan dengan kolom di tabel
            'deskripsi' => $this->faker->text, // Sesuaikan dengan kolom di tabel
        ];
    }
}

3. Gunakan Seeder untuk Mengisi Data

Jika Anda ingin mengisi data ke tabel matakuliah menggunakan seeder, buatlah seeder dengan perintah artisan:

php artisan make:seeder MataKuliahSeeder

Kemudian, edit file MataKuliahSeeder.php:

<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use App\Models\MataKuliah; class MataKuliahSeeder extends Seeder { public function run() { // Menambahkan 10 data mata kuliah ke tabel MataKuliah::factory()->count(10)->create(); } }

4. Jalankan Seeder

Pastikan seeder Anda telah terdaftar di DatabaseSeeder.php:

public function run() { $this->call([ MataKuliahSeeder::class, ]); }

Kemudian, jalankan seeder untuk mengisi data ke tabel matakuliah:

php artisan db:seed

5. Verifikasi Data

Periksa tabel matakuliah di database Anda untuk memastikan data telah ditambahkan.

Dengan mengikuti langkah-langkah ini, Anda akan dapat menambahkan data ke tabel matakuliah menggunakan factory dan seeder di Laravel.